/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package accesodatos;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

/**
 *
 * @author Ana Maria
 */
public class Costos {
    
    FachadaDW dw = new FachadaDW();
    

    public String construirConsultaCosto(boolean porMes, boolean porAño, boolean porEstrato, boolean porOcupacion, boolean porGrupoEtareo, String mes, String anio) {


        String SQL_HEADER = "SELECT (CostoAC.PromCosto+CostoACE.PromCosto+CostoAU.PromCosto+CostoAH.PromCosto)/4 promedio, ";
        String HEADER_KEY_COLUMN = "";

        String SQL_ACE = "(select AVG(costo)PromCosto, ";
        String SQL_KEY_COLUMN_ACE;
        String SQL_FROM_ACE = "from atencion_cita_especializada ACE";
        String SQL_WHERE_ACE = " WHERE ";
        String SQL_GROUP_BY_ACE;

        String SQL_AC = "(select AVG(costo)PromCosto,";
        String SQL_KEY_COLUMN_AC;
        String SQL_FROM_AC = " from atencion_citas AC ";
        String SQL_WHERE_AC = " WHERE ";
        String SQL_GROUP_BY_AC;
        String SQL_ON_AC;

        String SQL_AU = "(select AVG(costo)PromCosto,";
        String SQL_KEY_COLUMN_AU;
        String SQL_FROM_AU = " from atencion_urgencias AU ";
        String SQL_WHERE_AU = " WHERE ";
        String SQL_GROUP_BY_AU;
        String SQL_ON_AU;

        String SQL_AH = "(select AVG(costo)PromCosto, ";
        String SQL_KEY_COLUMN_AH;
        String SQL_FROM_AH = " from atencion_hospitalizacion AH ";
        String SQL_WHERE_AH = " WHERE ";
        String SQL_GROUP_BY_AH;
        String SQL_ON_AH;

        String consulta;
        consulta = "";
        consulta += SQL_HEADER;

        if (porEstrato) {
            HEADER_KEY_COLUMN = " CostoAC.estrato data FROM";

            SQL_KEY_COLUMN_ACE = "(SELECT estrato from dimension_demografica where id_demografia = ACE.id_demografia) estrato ";
            SQL_KEY_COLUMN_AC = "(SELECT estrato from dimension_demografica where id_demografia = AC.id_demografia) estrato ";
            SQL_KEY_COLUMN_AU = "(SELECT estrato from dimension_demografica where id_demografia = AU.id_demografia) estrato ";
            SQL_KEY_COLUMN_AH = "(SELECT estrato from dimension_demografica where id_demografia = AH.id_demografia) estrato ";

            if (porAño && !porMes) {

                if (anio.equals("Todos")) {


                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";
                }

            } else if (porMes && !porAño) {

                if (mes.equals("Todos")) {

                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";
                }

            } else if (porAño && porMes) {

                if (anio.equals("Todos")) {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE = "";
                        SQL_WHERE_AC = "";
                        SQL_WHERE_AU = "";
                        SQL_WHERE_AH = "";


                    } else {

                        SQL_WHERE_ACE = "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC = "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU = "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH = "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";


                    }
                } else {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";

                    } else {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' AND ";

                        SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";

                    }


                }



            } else {

                SQL_WHERE_ACE = "";
                SQL_WHERE_AC = "";
                SQL_WHERE_AU = "";
                SQL_WHERE_AH = "";


            }

            SQL_GROUP_BY_ACE = " group by estrato) CostoACE JOIN ";
            SQL_GROUP_BY_AC = " group by estrato) CostoAC ";
            SQL_GROUP_BY_AU = " group by estrato) CostoAU ";
            SQL_GROUP_BY_AH = " group by estrato) CostoAH ";

            SQL_ON_AC = " ON CostoACE.estrato = CostoAC.estrato JOIN ";
            SQL_ON_AU = " ON CostoAC.estrato = CostoAU.estrato JOIN ";
            SQL_ON_AH = "ON CostoAU.estrato = CostoAH.estrato; ";

            SQL_ACE += SQL_KEY_COLUMN_ACE + SQL_FROM_ACE + SQL_WHERE_ACE + SQL_GROUP_BY_ACE;
            SQL_AC += SQL_KEY_COLUMN_AC + SQL_FROM_AC + SQL_WHERE_AC + SQL_GROUP_BY_AC + SQL_ON_AC;
            SQL_AU += SQL_KEY_COLUMN_AU + SQL_FROM_AU + SQL_WHERE_AU + SQL_GROUP_BY_AU + SQL_ON_AU;
            SQL_AH += SQL_KEY_COLUMN_AH + SQL_FROM_AH + SQL_WHERE_AH + SQL_GROUP_BY_AH + SQL_ON_AH;


            consulta += HEADER_KEY_COLUMN + SQL_ACE + SQL_AC + SQL_AU + SQL_AH;


        } else if (porOcupacion) {

            HEADER_KEY_COLUMN = " CostoAC.ocupacion data FROM";
            SQL_KEY_COLUMN_ACE = "(SELECT tipo_cotizante from dimension_afiliado where id_afiliado = ACE.id_cliente) ocupacion ";

            SQL_KEY_COLUMN_AC = "(SELECT tipo_cotizante from dimension_afiliado where id_afiliado = AC.id_cliente) ocupacion ";
            SQL_KEY_COLUMN_AU = "(SELECT tipo_cotizante from dimension_afiliado where id_afiliado = AU.id_cliente) ocupacion ";
            SQL_KEY_COLUMN_AH = "(SELECT tipo_cotizante from dimension_afiliado where id_afiliado = AH.id_cliente) ocupacion ";


            if (porAño && !porMes) {

                if (anio.equals("Todos")) {


                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";
                }

            } else if (porMes && !porAño) {

                if (mes.equals("Todos")) {

                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";
                }

            } else if (porAño && porMes) {

                if (anio.equals("Todos")) {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE = "";
                        SQL_WHERE_AC = "";
                        SQL_WHERE_AU = "";
                        SQL_WHERE_AH = "";


                    } else {

                        SQL_WHERE_ACE = "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC = "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU = "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH = "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";


                    }
                } else {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";

                    } else {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' AND ";

                        SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";

                    }


                }



            } else {

                SQL_WHERE_ACE = "";
                SQL_WHERE_AC = "";
                SQL_WHERE_AU = "";
                SQL_WHERE_AH = "";


            }


            SQL_GROUP_BY_ACE = " group by ocupacion) CostoACE JOIN ";
            SQL_GROUP_BY_AC = " group by ocupacion) CostoAC ";
            SQL_GROUP_BY_AU = " group by ocupacion) CostoAU ";
            SQL_GROUP_BY_AH = " group by ocupacion) CostoAH ";

            SQL_ON_AC = " ON CostoACE.ocupacion = CostoAC.ocupacion JOIN ";
            SQL_ON_AU = " ON CostoAC.ocupacion = CostoAU.ocupacion JOIN ";
            SQL_ON_AH = "ON CostoAU.ocupacion = CostoAH.ocupacion; ";

            SQL_ACE += SQL_KEY_COLUMN_ACE + SQL_FROM_ACE + SQL_WHERE_ACE + SQL_GROUP_BY_ACE;
            SQL_AC += SQL_KEY_COLUMN_AC + SQL_FROM_AC + SQL_WHERE_AC + SQL_GROUP_BY_AC + SQL_ON_AC;
            SQL_AU += SQL_KEY_COLUMN_AU + SQL_FROM_AU + SQL_WHERE_AU + SQL_GROUP_BY_AU + SQL_ON_AU;
            SQL_AH += SQL_KEY_COLUMN_AH + SQL_FROM_AH + SQL_WHERE_AH + SQL_GROUP_BY_AH + SQL_ON_AH;
            consulta += HEADER_KEY_COLUMN + SQL_ACE + SQL_AC + SQL_AU + SQL_AH;


        } else if (porGrupoEtareo) {

            HEADER_KEY_COLUMN = " CostoAC.edad data FROM";

            SQL_KEY_COLUMN_ACE = "(SELECT (CASE WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = ACE.id_cliente)) BETWEEN 0 AND 15 THEN 'Niño' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = ACE.id_cliente)) BETWEEN 16 AND 30 THEN 'Joven' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = ACE.id_cliente)) BETWEEN 31 AND 50 THEN 'Adulto' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = ACE.id_cliente)) BETWEEN 51 AND 200 THEN 'Anciano' END)) edad ";

            SQL_KEY_COLUMN_AC = "(SELECT (CASE WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AC.id_cliente)) BETWEEN 0 AND 15 THEN 'Niño' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AC.id_cliente)) BETWEEN 16 AND 30 THEN 'Joven' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AC.id_cliente)) BETWEEN 31 AND 50 THEN 'Adulto' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AC.id_cliente)) BETWEEN 51 AND 200 THEN 'Anciano' END)) edad ";


            SQL_KEY_COLUMN_AU = "(SELECT (CASE WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AU.id_cliente)) BETWEEN 0 AND 15 THEN 'Niño' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AU.id_cliente)) BETWEEN 16 AND 30 THEN 'Joven' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AU.id_cliente)) BETWEEN 31 AND 50 THEN 'Adulto' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AU.id_cliente)) BETWEEN 51 AND 200 THEN 'Anciano' END)) edad ";

            SQL_KEY_COLUMN_AH = "(SELECT (CASE WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AH.id_cliente)) BETWEEN 0 AND 15 THEN 'Niño' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AH.id_cliente)) BETWEEN 16 AND 30 THEN 'Joven' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AH.id_cliente)) BETWEEN 31 AND 50 THEN 'Adulto' "
                    + "WHEN YEAR(CURRENT_DATE) - YEAR((SELECT fecha_nacimiento from dimension_afiliado where id_afiliado = AH.id_cliente)) BETWEEN 51 AND 200 THEN 'Anciano' END)) edad ";

            if (porAño && !porMes) {

                if (anio.equals("Todos")) {


                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                    SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";
                }

            } else if (porMes && !porAño) {

                if (mes.equals("Todos")) {

                    SQL_WHERE_ACE = "";
                    SQL_WHERE_AC = "";
                    SQL_WHERE_AU = "";
                    SQL_WHERE_AH = "";


                } else {

                    SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                    SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";
                }

            } else if (porAño && porMes) {

                if (anio.equals("Todos")) {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE = "";
                        SQL_WHERE_AC = "";
                        SQL_WHERE_AU = "";
                        SQL_WHERE_AH = "";


                    } else {

                        SQL_WHERE_ACE = "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC = "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU = "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH = "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";


                    }
                } else {

                    if (mes.equals("Todos")) {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' ";

                    } else {

                        SQL_WHERE_ACE += "(SELECT anio FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AC += "(SELECT anio FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AU += "(SELECT anio FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + anio + "' AND ";
                        SQL_WHERE_AH += "(SELECT anio FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + anio + "' AND ";

                        SQL_WHERE_ACE += "(SELECT mes FROM fecha WHERE k_fecha = ACE.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AC += "(SELECT mes FROM fecha WHERE k_fecha = AC.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AU += "(SELECT mes FROM fecha WHERE k_fecha = AU.id_fecha_atencion) = '" + mes + "' ";
                        SQL_WHERE_AH += "(SELECT mes FROM fecha WHERE k_fecha = AH.id_fecha_atencion) = '" + mes + "' ";

                    }


                }



            } else {

                SQL_WHERE_ACE = "";
                SQL_WHERE_AC = "";
                SQL_WHERE_AU = "";
                SQL_WHERE_AH = "";


            }

            SQL_GROUP_BY_ACE = " group by edad) CostoACE JOIN ";
            SQL_GROUP_BY_AC = " group by edad) CostoAC ";
            SQL_GROUP_BY_AU = " group by edad) CostoAU ";
            SQL_GROUP_BY_AH = " group by edad) CostoAH ";

            SQL_ON_AC = " ON CostoACE.edad = CostoAC.edad JOIN ";
            SQL_ON_AU = " ON CostoAC.edad = CostoAU.edad JOIN ";
            SQL_ON_AH = "ON CostoAU.edad = CostoAH.edad; ";

            SQL_ACE += SQL_KEY_COLUMN_ACE + SQL_FROM_ACE + SQL_WHERE_ACE + SQL_GROUP_BY_ACE;
            SQL_AC += SQL_KEY_COLUMN_AC + SQL_FROM_AC + SQL_WHERE_AC + SQL_GROUP_BY_AC + SQL_ON_AC;
            SQL_AU += SQL_KEY_COLUMN_AU + SQL_FROM_AU + SQL_WHERE_AU + SQL_GROUP_BY_AU + SQL_ON_AU;
            SQL_AH += SQL_KEY_COLUMN_AH + SQL_FROM_AH + SQL_WHERE_AH + SQL_GROUP_BY_AH + SQL_ON_AH;
            consulta += HEADER_KEY_COLUMN + SQL_ACE + SQL_AC + SQL_AU + SQL_AH;




        }
        return consulta;
    }
    
    
    public void CrearGraficoDeBarras(String series, String title, String infoX, String infoY) {

        DefaultCategoryDataset data = new DefaultCategoryDataset();

        try {
            Connection con = dw.conectar();
            Statement statement = con.createStatement();
            ResultSet set = statement.executeQuery(series);

            while (set.next()) {

                data.setValue(set.getInt("promedio"), set.getString("data"), "");
            }

            JFreeChart chart = ChartFactory.createBarChart3D(title, infoX, infoY, data, PlotOrientation.VERTICAL, true, true, true);

            ChartFrame frame = new ChartFrame("Resultado", chart);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);

        } catch (SQLException ex) {

            System.out.println(ex);
        }
        
    }

    public void CrearGraficoDePastel(String series, String title) {



        DefaultPieDataset pie = new DefaultPieDataset();


        try {
            Connection con = dw.conectar();
            Statement statement = con.createStatement();
            ResultSet set = statement.executeQuery(series);

            while (set.next()) {

                pie.setValue(set.getString("data"), set.getInt("promedio"));
            }

            JFreeChart chart = ChartFactory.createPieChart3D(title, // Title
                    pie, // Dataset
                    true, // Show legend
                    true, // Use tooltips
                    false // Configure chart to generate URLs?
                    );

            ChartFrame frame = new ChartFrame("Resultado", chart);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);

        } catch (SQLException ex) {

            System.out.println(ex);
        }catch(Exception w){
        
            System.out.println(w);
        
        }

        
        

    }

    public static void main(String args[]) {

        Costos cost = new Costos();
        String n = cost.construirConsultaCosto(true, true, true, false, false, "Todos", "Todos");
        cost.CrearGraficoDeBarras(n, "Colombia Saludable - Resultados Consulta", "", "");
        cost.CrearGraficoDePastel(n, "Colombia Saludable - Resultados Consulta");
        
        System.out.println(n);
        
        


    }
}
